// QuizQuestion.java - 根据实际表结构调整
package com.example.gymlearning.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuizQuestion {
    private Long id;
    private Long knowledgePointId; // 对应 knowledge_point_id
    private String questionType;
    private String content;        // 对应 content 字段
    private String options;
    private String correctAnswer;
    private String explanation;
    private Integer score;
    private Date createdTime;

    // 在 QuizQuestion 类中添加以下字段
    private String usageType; // PRACTICE-练习, FORMAL-正式, REVIEW-复习
    private Integer difficulty; // 1-简单, 2-中等, 3-困难
    private Long packageId; // 所属知识包ID

    // 支持多重随机化的字段
    /**
     * 题目组ID，同一知识点的不同题目变体共享同一个group_id
     * 用于随机选择同一知识点的不同题目变体
     */
    private Long questionGroupId;

    /**
     * 答案同义词（JSON数组格式），用于填空题答案的容错匹配
     * 例如：["OOP", "面向对象", "object-oriented"]
     */
    private String answerSynonyms;

    /**
     * 选项的实际内容值（JSON数组格式），用于选择题选项随机化
     * 例如：["选项1", "选项2", "选项3", "选项4"]
     * correct_answer存储的是选项的实际内容值（不是A/B/C/D）
     */
    private String optionValues;

    /**
     * 空白位置信息（JSON数组格式），用于多空填空题的空白位置随机化
     * 格式：[{"position": 0, "answer": "答案1"}, {"position": 1, "answer": "答案2"}]
     */
    private String blankPositions;

}
